<?php

require("Base.php");

class class_Transmision extends class_Base
{
  function __construct() {
    parent::__construct();
  }


  public function method_transmitir_pedidos($params, $error) {

	$sql="SELECT sucursal.* FROM paramet INNER JOIN sucursal USING(id_sucursal)";
	$rsSuc = mysql_query($sql);
	$rowSuc = mysql_fetch_object($rsSuc);
	
	$sql="SELECT sucursal.* FROM paramet INNER JOIN sucursal ON paramet.id_sucursal_central = sucursal.id_sucursal";
	$rsSucCentral = mysql_query($sql);
	$rowSucCentral = mysql_fetch_object($rsSucCentral);
	
	$time = time();
	$gtrid1 = "gtrid1-" . $rowSuc->id_sucursal . "-" . $time;
	$gtrid2 = "gtrid2-" . $rowSuc->id_sucursal . "-" . $time;

	$link1 = mysql_connect($rowSuc->url, $rowSuc->username, $rowSuc->password, true);
	mysql_select_db("elpintao", $link1);
	mysql_query("SET NAMES 'utf8'", $link1);
	
	$link2 = mysql_connect($rowSucCentral->url, $rowSucCentral->username, $rowSucCentral->password, true);
	mysql_select_db("elpintao", $link2);
	mysql_query("SET NAMES 'utf8'", $link2);
	
	mysql_query("XA START '" . $gtrid1 . "'", $link1);
	mysql_query("XA START '" . $gtrid2 . "'", $link2);
	
	
	$sql="SELECT * FROM pedido WHERE transmitido = FALSE ORDER BY id_pedido";
	$rsPedido = mysql_query($sql, $link1);
	while ($rowPedido = mysql_fetch_object($rsPedido)) {
		$sql="INSERT pedido_suc SET id_sucursal = '" . $rowSuc->id_sucursal . "', id_fabrica = '" . $rowPedido->id_fabrica . "', fecha = '" . $rowPedido->fecha . "'";
		mysql_query($sql, $link2);
		$insert_id = mysql_insert_id($link2);

		$sql="SELECT * FROM pedido_detalle WHERE id_pedido='" . $rowPedido->id_pedido . "' ORDER BY id_pedido_detalle";
		$rsDetalle = mysql_query($sql, $link1);
		while ($rowDetalle = mysql_fetch_object($rsDetalle)) {
			$sql="INSERT pedido_suc_detalle SET id_pedido_suc='" . $insert_id . "', id_pedido_ext='0', id_producto_item='" . $rowDetalle->id_producto_item . "', cantidad='" . $rowDetalle->cantidad . "'";
			mysql_query($sql, $link2);
		}		

		$sql="UPDATE pedido SET transmitido = TRUE WHERE id_pedido='" . $rowPedido->id_pedido . "'";
		mysql_query($sql, $link1);
	}

	mysql_query("XA END '" . $gtrid1 . "'", $link1);
	mysql_query("XA END '" . $gtrid2 . "'", $link2);
	
	mysql_query("XA PREPARE '" . $gtrid1 . "'", $link1);
	mysql_query("XA PREPARE '" . $gtrid2 . "'", $link2);
	
	
	$bool1 = false;
	$rsAux = mysql_query("XA RECOVER", $link1);
	while ($rowAux = mysql_fetch_object($rsAux)) {
		if ($rowAux->data==$gtrid1) {
			$bool1 = true;
			break;
		}
	}
	
	$bool2 = false;
	$rsAux = mysql_query("XA RECOVER", $link2);
	while ($rowAux = mysql_fetch_object($rsAux)) {
		if ($rowAux->data==$gtrid2) {
			$bool2 = true;
			break;
		}
	}
	

	if ($bool1 && $bool2) {
		mysql_query("XA COMMIT '" . $gtrid1 . "'", $link1);
		mysql_query("XA COMMIT '" . $gtrid2 . "'", $link2);
	} else {
		mysql_query("XA ROLLBACK '" . $gtrid1 . "'", $link1);
		mysql_query("XA ROLLBACK '" . $gtrid2 . "'", $link2);		
	}
  }
}

?>